using System; 
using System.Text; 
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration; 
using System.Xml; 
using System.Xml.Serialization;
using SubSonic; 
using SubSonic.Utilities;

namespace Commerce.Common{
    /// <summary>
    /// Strongly-typed collection for the ProductCrossSell class.
    /// </summary>
    [Serializable]
    public partial class ProductCrossSellCollection : ReadOnlyList<ProductCrossSell, ProductCrossSellCollection>
    {        
        public ProductCrossSellCollection() {}

    }

    /// <summary>
    /// This is  Read-only wrapper class for the ProductCrossSells view.
    /// </summary>
    [Serializable]
    public partial class ProductCrossSell : ReadOnlyRecord<ProductCrossSell>, IReadOnlyRecord
    {
    
	    #region Default Settings
	    protected static void SetSQLProps() 
	    {
		    GetTableSchema();
	    }

	    #endregion
        #region Schema Accessor
	    public static TableSchema.Table Schema
        {
            get
            {
                if (BaseSchema == null)
                {
                    SetSQLProps();
                }

                return BaseSchema;
            }

        }

    	
        private static void GetTableSchema() 
        {
            if(!IsSchemaInitialized)
            {
                //Schema declaration
                TableSchema.Table schema = new TableSchema.Table("ProductCrossSells", TableType.View, DataService.GetInstance("dashCommerce"));
                schema.Columns = new TableSchema.TableColumnCollection();
                schema.SchemaName = "dbo";
                //columns
                
                TableSchema.TableColumn colvarProductID = new TableSchema.TableColumn(schema);
                colvarProductID.ColumnName = "productID";
                colvarProductID.DataType = DbType.Int32;
                colvarProductID.MaxLength = 0;
                colvarProductID.AutoIncrement = false;
                colvarProductID.IsNullable = false;
                colvarProductID.IsPrimaryKey = false;
                colvarProductID.IsForeignKey = false;
                colvarProductID.IsReadOnly = false;
                
                schema.Columns.Add(colvarProductID);
                
                TableSchema.TableColumn colvarSku = new TableSchema.TableColumn(schema);
                colvarSku.ColumnName = "sku";
                colvarSku.DataType = DbType.String;
                colvarSku.MaxLength = 50;
                colvarSku.AutoIncrement = false;
                colvarSku.IsNullable = true;
                colvarSku.IsPrimaryKey = false;
                colvarSku.IsForeignKey = false;
                colvarSku.IsReadOnly = false;
                
                schema.Columns.Add(colvarSku);
                
                TableSchema.TableColumn colvarProductName = new TableSchema.TableColumn(schema);
                colvarProductName.ColumnName = "productName";
                colvarProductName.DataType = DbType.String;
                colvarProductName.MaxLength = 150;
                colvarProductName.AutoIncrement = false;
                colvarProductName.IsNullable = false;
                colvarProductName.IsPrimaryKey = false;
                colvarProductName.IsForeignKey = false;
                colvarProductName.IsReadOnly = false;
                
                schema.Columns.Add(colvarProductName);
                
                TableSchema.TableColumn colvarShortDescription = new TableSchema.TableColumn(schema);
                colvarShortDescription.ColumnName = "shortDescription";
                colvarShortDescription.DataType = DbType.String;
                colvarShortDescription.MaxLength = 1000;
                colvarShortDescription.AutoIncrement = false;
                colvarShortDescription.IsNullable = true;
                colvarShortDescription.IsPrimaryKey = false;
                colvarShortDescription.IsForeignKey = false;
                colvarShortDescription.IsReadOnly = false;
                
                schema.Columns.Add(colvarShortDescription);
                
                TableSchema.TableColumn colvarManufacturerID = new TableSchema.TableColumn(schema);
                colvarManufacturerID.ColumnName = "manufacturerID";
                colvarManufacturerID.DataType = DbType.Int32;
                colvarManufacturerID.MaxLength = 0;
                colvarManufacturerID.AutoIncrement = false;
                colvarManufacturerID.IsNullable = false;
                colvarManufacturerID.IsPrimaryKey = false;
                colvarManufacturerID.IsForeignKey = false;
                colvarManufacturerID.IsReadOnly = false;
                
                schema.Columns.Add(colvarManufacturerID);
                
                TableSchema.TableColumn colvarAttributeXML = new TableSchema.TableColumn(schema);
                colvarAttributeXML.ColumnName = "attributeXML";
                colvarAttributeXML.DataType = DbType.String;
                colvarAttributeXML.MaxLength = 1073741823;
                colvarAttributeXML.AutoIncrement = false;
                colvarAttributeXML.IsNullable = true;
                colvarAttributeXML.IsPrimaryKey = false;
                colvarAttributeXML.IsForeignKey = false;
                colvarAttributeXML.IsReadOnly = false;
                
                schema.Columns.Add(colvarAttributeXML);
                
                TableSchema.TableColumn colvarStatusID = new TableSchema.TableColumn(schema);
                colvarStatusID.ColumnName = "statusID";
                colvarStatusID.DataType = DbType.Int32;
                colvarStatusID.MaxLength = 0;
                colvarStatusID.AutoIncrement = false;
                colvarStatusID.IsNullable = false;
                colvarStatusID.IsPrimaryKey = false;
                colvarStatusID.IsForeignKey = false;
                colvarStatusID.IsReadOnly = false;
                
                schema.Columns.Add(colvarStatusID);
                
                TableSchema.TableColumn colvarProductTypeID = new TableSchema.TableColumn(schema);
                colvarProductTypeID.ColumnName = "productTypeID";
                colvarProductTypeID.DataType = DbType.Int32;
                colvarProductTypeID.MaxLength = 0;
                colvarProductTypeID.AutoIncrement = false;
                colvarProductTypeID.IsNullable = false;
                colvarProductTypeID.IsPrimaryKey = false;
                colvarProductTypeID.IsForeignKey = false;
                colvarProductTypeID.IsReadOnly = false;
                
                schema.Columns.Add(colvarProductTypeID);
                
                TableSchema.TableColumn colvarShippingTypeID = new TableSchema.TableColumn(schema);
                colvarShippingTypeID.ColumnName = "shippingTypeID";
                colvarShippingTypeID.DataType = DbType.Int32;
                colvarShippingTypeID.MaxLength = 0;
                colvarShippingTypeID.AutoIncrement = false;
                colvarShippingTypeID.IsNullable = false;
                colvarShippingTypeID.IsPrimaryKey = false;
                colvarShippingTypeID.IsForeignKey = false;
                colvarShippingTypeID.IsReadOnly = false;
                
                schema.Columns.Add(colvarShippingTypeID);
                
                TableSchema.TableColumn colvarShipEstimateID = new TableSchema.TableColumn(schema);
                colvarShipEstimateID.ColumnName = "shipEstimateID";
                colvarShipEstimateID.DataType = DbType.Int32;
                colvarShipEstimateID.MaxLength = 0;
                colvarShipEstimateID.AutoIncrement = false;
                colvarShipEstimateID.IsNullable = false;
                colvarShipEstimateID.IsPrimaryKey = false;
                colvarShipEstimateID.IsForeignKey = false;
                colvarShipEstimateID.IsReadOnly = false;
                
                schema.Columns.Add(colvarShipEstimateID);
                
                TableSchema.TableColumn colvarTaxTypeID = new TableSchema.TableColumn(schema);
                colvarTaxTypeID.ColumnName = "taxTypeID";
                colvarTaxTypeID.DataType = DbType.Int32;
                colvarTaxTypeID.MaxLength = 0;
                colvarTaxTypeID.AutoIncrement = false;
                colvarTaxTypeID.IsNullable = false;
                colvarTaxTypeID.IsPrimaryKey = false;
                colvarTaxTypeID.IsForeignKey = false;
                colvarTaxTypeID.IsReadOnly = false;
                
                schema.Columns.Add(colvarTaxTypeID);
                
                TableSchema.TableColumn colvarStockLocation = new TableSchema.TableColumn(schema);
                colvarStockLocation.ColumnName = "stockLocation";
                colvarStockLocation.DataType = DbType.String;
                colvarStockLocation.MaxLength = 150;
                colvarStockLocation.AutoIncrement = false;
                colvarStockLocation.IsNullable = true;
                colvarStockLocation.IsPrimaryKey = false;
                colvarStockLocation.IsForeignKey = false;
                colvarStockLocation.IsReadOnly = false;
                
                schema.Columns.Add(colvarStockLocation);
                
                TableSchema.TableColumn colvarOurPrice = new TableSchema.TableColumn(schema);
                colvarOurPrice.ColumnName = "ourPrice";
                colvarOurPrice.DataType = DbType.Currency;
                colvarOurPrice.MaxLength = 0;
                colvarOurPrice.AutoIncrement = false;
                colvarOurPrice.IsNullable = false;
                colvarOurPrice.IsPrimaryKey = false;
                colvarOurPrice.IsForeignKey = false;
                colvarOurPrice.IsReadOnly = false;
                
                schema.Columns.Add(colvarOurPrice);
                
                TableSchema.TableColumn colvarRetailPrice = new TableSchema.TableColumn(schema);
                colvarRetailPrice.ColumnName = "retailPrice";
                colvarRetailPrice.DataType = DbType.Currency;
                colvarRetailPrice.MaxLength = 0;
                colvarRetailPrice.AutoIncrement = false;
                colvarRetailPrice.IsNullable = false;
                colvarRetailPrice.IsPrimaryKey = false;
                colvarRetailPrice.IsForeignKey = false;
                colvarRetailPrice.IsReadOnly = false;
                
                schema.Columns.Add(colvarRetailPrice);
                
                TableSchema.TableColumn colvarWeight = new TableSchema.TableColumn(schema);
                colvarWeight.ColumnName = "weight";
                colvarWeight.DataType = DbType.Decimal;
                colvarWeight.MaxLength = 0;
                colvarWeight.AutoIncrement = false;
                colvarWeight.IsNullable = false;
                colvarWeight.IsPrimaryKey = false;
                colvarWeight.IsForeignKey = false;
                colvarWeight.IsReadOnly = false;
                
                schema.Columns.Add(colvarWeight);
                
                TableSchema.TableColumn colvarCurrencyCode = new TableSchema.TableColumn(schema);
                colvarCurrencyCode.ColumnName = "currencyCode";
                colvarCurrencyCode.DataType = DbType.AnsiStringFixedLength;
                colvarCurrencyCode.MaxLength = 3;
                colvarCurrencyCode.AutoIncrement = false;
                colvarCurrencyCode.IsNullable = false;
                colvarCurrencyCode.IsPrimaryKey = false;
                colvarCurrencyCode.IsForeignKey = false;
                colvarCurrencyCode.IsReadOnly = false;
                
                schema.Columns.Add(colvarCurrencyCode);
                
                TableSchema.TableColumn colvarUnitOfMeasure = new TableSchema.TableColumn(schema);
                colvarUnitOfMeasure.ColumnName = "unitOfMeasure";
                colvarUnitOfMeasure.DataType = DbType.String;
                colvarUnitOfMeasure.MaxLength = 50;
                colvarUnitOfMeasure.AutoIncrement = false;
                colvarUnitOfMeasure.IsNullable = true;
                colvarUnitOfMeasure.IsPrimaryKey = false;
                colvarUnitOfMeasure.IsForeignKey = false;
                colvarUnitOfMeasure.IsReadOnly = false;
                
                schema.Columns.Add(colvarUnitOfMeasure);
                
                TableSchema.TableColumn colvarAdminComments = new TableSchema.TableColumn(schema);
                colvarAdminComments.ColumnName = "adminComments";
                colvarAdminComments.DataType = DbType.String;
                colvarAdminComments.MaxLength = 1000;
                colvarAdminComments.AutoIncrement = false;
                colvarAdminComments.IsNullable = true;
                colvarAdminComments.IsPrimaryKey = false;
                colvarAdminComments.IsForeignKey = false;
                colvarAdminComments.IsReadOnly = false;
                
                schema.Columns.Add(colvarAdminComments);
                
                TableSchema.TableColumn colvarLength = new TableSchema.TableColumn(schema);
                colvarLength.ColumnName = "length";
                colvarLength.DataType = DbType.Decimal;
                colvarLength.MaxLength = 0;
                colvarLength.AutoIncrement = false;
                colvarLength.IsNullable = false;
                colvarLength.IsPrimaryKey = false;
                colvarLength.IsForeignKey = false;
                colvarLength.IsReadOnly = false;
                
                schema.Columns.Add(colvarLength);
                
                TableSchema.TableColumn colvarHeight = new TableSchema.TableColumn(schema);
                colvarHeight.ColumnName = "height";
                colvarHeight.DataType = DbType.Decimal;
                colvarHeight.MaxLength = 0;
                colvarHeight.AutoIncrement = false;
                colvarHeight.IsNullable = false;
                colvarHeight.IsPrimaryKey = false;
                colvarHeight.IsForeignKey = false;
                colvarHeight.IsReadOnly = false;
                
                schema.Columns.Add(colvarHeight);
                
                TableSchema.TableColumn colvarWidth = new TableSchema.TableColumn(schema);
                colvarWidth.ColumnName = "width";
                colvarWidth.DataType = DbType.Decimal;
                colvarWidth.MaxLength = 0;
                colvarWidth.AutoIncrement = false;
                colvarWidth.IsNullable = false;
                colvarWidth.IsPrimaryKey = false;
                colvarWidth.IsForeignKey = false;
                colvarWidth.IsReadOnly = false;
                
                schema.Columns.Add(colvarWidth);
                
                TableSchema.TableColumn colvarDimensionUnit = new TableSchema.TableColumn(schema);
                colvarDimensionUnit.ColumnName = "dimensionUnit";
                colvarDimensionUnit.DataType = DbType.String;
                colvarDimensionUnit.MaxLength = 20;
                colvarDimensionUnit.AutoIncrement = false;
                colvarDimensionUnit.IsNullable = false;
                colvarDimensionUnit.IsPrimaryKey = false;
                colvarDimensionUnit.IsForeignKey = false;
                colvarDimensionUnit.IsReadOnly = false;
                
                schema.Columns.Add(colvarDimensionUnit);
                
                TableSchema.TableColumn colvarIsDeleted = new TableSchema.TableColumn(schema);
                colvarIsDeleted.ColumnName = "isDeleted";
                colvarIsDeleted.DataType = DbType.Boolean;
                colvarIsDeleted.MaxLength = 0;
                colvarIsDeleted.AutoIncrement = false;
                colvarIsDeleted.IsNullable = false;
                colvarIsDeleted.IsPrimaryKey = false;
                colvarIsDeleted.IsForeignKey = false;
                colvarIsDeleted.IsReadOnly = false;
                
                schema.Columns.Add(colvarIsDeleted);
                
                TableSchema.TableColumn colvarListOrder = new TableSchema.TableColumn(schema);
                colvarListOrder.ColumnName = "listOrder";
                colvarListOrder.DataType = DbType.Int32;
                colvarListOrder.MaxLength = 0;
                colvarListOrder.AutoIncrement = false;
                colvarListOrder.IsNullable = false;
                colvarListOrder.IsPrimaryKey = false;
                colvarListOrder.IsForeignKey = false;
                colvarListOrder.IsReadOnly = false;
                
                schema.Columns.Add(colvarListOrder);
                
                TableSchema.TableColumn colvarRatingSum = new TableSchema.TableColumn(schema);
                colvarRatingSum.ColumnName = "ratingSum";
                colvarRatingSum.DataType = DbType.Int32;
                colvarRatingSum.MaxLength = 0;
                colvarRatingSum.AutoIncrement = false;
                colvarRatingSum.IsNullable = false;
                colvarRatingSum.IsPrimaryKey = false;
                colvarRatingSum.IsForeignKey = false;
                colvarRatingSum.IsReadOnly = false;
                
                schema.Columns.Add(colvarRatingSum);
                
                TableSchema.TableColumn colvarTotalRatingVotes = new TableSchema.TableColumn(schema);
                colvarTotalRatingVotes.ColumnName = "totalRatingVotes";
                colvarTotalRatingVotes.DataType = DbType.Int32;
                colvarTotalRatingVotes.MaxLength = 0;
                colvarTotalRatingVotes.AutoIncrement = false;
                colvarTotalRatingVotes.IsNullable = false;
                colvarTotalRatingVotes.IsPrimaryKey = false;
                colvarTotalRatingVotes.IsForeignKey = false;
                colvarTotalRatingVotes.IsReadOnly = false;
                
                schema.Columns.Add(colvarTotalRatingVotes);
                
                TableSchema.TableColumn colvarDefaultImage = new TableSchema.TableColumn(schema);
                colvarDefaultImage.ColumnName = "defaultImage";
                colvarDefaultImage.DataType = DbType.String;
                colvarDefaultImage.MaxLength = 500;
                colvarDefaultImage.AutoIncrement = false;
                colvarDefaultImage.IsNullable = true;
                colvarDefaultImage.IsPrimaryKey = false;
                colvarDefaultImage.IsForeignKey = false;
                colvarDefaultImage.IsReadOnly = false;
                
                schema.Columns.Add(colvarDefaultImage);
                
                TableSchema.TableColumn colvarCreatedOn = new TableSchema.TableColumn(schema);
                colvarCreatedOn.ColumnName = "createdOn";
                colvarCreatedOn.DataType = DbType.DateTime;
                colvarCreatedOn.MaxLength = 0;
                colvarCreatedOn.AutoIncrement = false;
                colvarCreatedOn.IsNullable = true;
                colvarCreatedOn.IsPrimaryKey = false;
                colvarCreatedOn.IsForeignKey = false;
                colvarCreatedOn.IsReadOnly = false;
                
                schema.Columns.Add(colvarCreatedOn);
                
                TableSchema.TableColumn colvarCreatedBy = new TableSchema.TableColumn(schema);
                colvarCreatedBy.ColumnName = "createdBy";
                colvarCreatedBy.DataType = DbType.String;
                colvarCreatedBy.MaxLength = 50;
                colvarCreatedBy.AutoIncrement = false;
                colvarCreatedBy.IsNullable = true;
                colvarCreatedBy.IsPrimaryKey = false;
                colvarCreatedBy.IsForeignKey = false;
                colvarCreatedBy.IsReadOnly = false;
                
                schema.Columns.Add(colvarCreatedBy);
                
                TableSchema.TableColumn colvarModifiedOn = new TableSchema.TableColumn(schema);
                colvarModifiedOn.ColumnName = "modifiedOn";
                colvarModifiedOn.DataType = DbType.DateTime;
                colvarModifiedOn.MaxLength = 0;
                colvarModifiedOn.AutoIncrement = false;
                colvarModifiedOn.IsNullable = true;
                colvarModifiedOn.IsPrimaryKey = false;
                colvarModifiedOn.IsForeignKey = false;
                colvarModifiedOn.IsReadOnly = false;
                
                schema.Columns.Add(colvarModifiedOn);
                
                TableSchema.TableColumn colvarModifiedBy = new TableSchema.TableColumn(schema);
                colvarModifiedBy.ColumnName = "modifiedBy";
                colvarModifiedBy.DataType = DbType.String;
                colvarModifiedBy.MaxLength = 50;
                colvarModifiedBy.AutoIncrement = false;
                colvarModifiedBy.IsNullable = true;
                colvarModifiedBy.IsPrimaryKey = false;
                colvarModifiedBy.IsForeignKey = false;
                colvarModifiedBy.IsReadOnly = false;
                
                schema.Columns.Add(colvarModifiedBy);
                
                TableSchema.TableColumn colvarCrossProductID = new TableSchema.TableColumn(schema);
                colvarCrossProductID.ColumnName = "crossProductID";
                colvarCrossProductID.DataType = DbType.Int32;
                colvarCrossProductID.MaxLength = 0;
                colvarCrossProductID.AutoIncrement = false;
                colvarCrossProductID.IsNullable = false;
                colvarCrossProductID.IsPrimaryKey = false;
                colvarCrossProductID.IsForeignKey = false;
                colvarCrossProductID.IsReadOnly = false;
                
                schema.Columns.Add(colvarCrossProductID);
                
                TableSchema.TableColumn colvarFromProductID = new TableSchema.TableColumn(schema);
                colvarFromProductID.ColumnName = "fromProductID";
                colvarFromProductID.DataType = DbType.Int32;
                colvarFromProductID.MaxLength = 0;
                colvarFromProductID.AutoIncrement = false;
                colvarFromProductID.IsNullable = false;
                colvarFromProductID.IsPrimaryKey = false;
                colvarFromProductID.IsForeignKey = false;
                colvarFromProductID.IsReadOnly = false;
                
                schema.Columns.Add(colvarFromProductID);
                
                TableSchema.TableColumn colvarProductGUID = new TableSchema.TableColumn(schema);
                colvarProductGUID.ColumnName = "productGUID";
                colvarProductGUID.DataType = DbType.Guid;
                colvarProductGUID.MaxLength = 0;
                colvarProductGUID.AutoIncrement = false;
                colvarProductGUID.IsNullable = false;
                colvarProductGUID.IsPrimaryKey = false;
                colvarProductGUID.IsForeignKey = false;
                colvarProductGUID.IsReadOnly = false;
                
                schema.Columns.Add(colvarProductGUID);
                
                TableSchema.TableColumn colvarRating = new TableSchema.TableColumn(schema);
                colvarRating.ColumnName = "rating";
                colvarRating.DataType = DbType.Currency;
                colvarRating.MaxLength = 0;
                colvarRating.AutoIncrement = false;
                colvarRating.IsNullable = true;
                colvarRating.IsPrimaryKey = false;
                colvarRating.IsForeignKey = false;
                colvarRating.IsReadOnly = false;
                
                schema.Columns.Add(colvarRating);
                
                
                BaseSchema = schema;
                //add this schema to the provider
                //so we can query it later
                DataService.Providers["dashCommerce"].AddSchema("ProductCrossSells",schema);
            }

        }

        #endregion
        
        #region Query Accessor
	    public static Query CreateQuery()
	    {
		    return new Query(Schema);
	    }

	    #endregion
	    
	    #region .ctors
	    public ProductCrossSell()
	    {
            SetSQLProps();
            SetDefaults();
            MarkNew();
        }

        public ProductCrossSell(bool useDatabaseDefaults)
	    {
		    SetSQLProps();
		    if(useDatabaseDefaults)
		    {
				ForceDefaults();
			}

			MarkNew();
	    }

	    
	    public ProductCrossSell(object keyID)
	    {
		    SetSQLProps();
		    LoadByKey(keyID);
	    }

    	 
	    public ProductCrossSell(string columnName, object columnValue)
        {
            SetSQLProps();
            LoadByParam(columnName,columnValue);
        }

        
	    #endregion
	    
	    #region Props
	    
          
        [XmlAttribute("ProductID")]
        public int ProductID 
	    {
		    get
		    {
			    return GetColumnValue<int>("productID");
		    }

            set 
		    {
			    SetColumnValue("productID", value);
            }

        }

	      
        [XmlAttribute("Sku")]
        public string Sku 
	    {
		    get
		    {
			    return GetColumnValue<string>("sku");
		    }

            set 
		    {
			    SetColumnValue("sku", value);
            }

        }

	      
        [XmlAttribute("ProductName")]
        public string ProductName 
	    {
		    get
		    {
			    return GetColumnValue<string>("productName");
		    }

            set 
		    {
			    SetColumnValue("productName", value);
            }

        }

	      
        [XmlAttribute("ShortDescription")]
        public string ShortDescription 
	    {
		    get
		    {
			    return GetColumnValue<string>("shortDescription");
		    }

            set 
		    {
			    SetColumnValue("shortDescription", value);
            }

        }

	      
        [XmlAttribute("ManufacturerID")]
        public int ManufacturerID 
	    {
		    get
		    {
			    return GetColumnValue<int>("manufacturerID");
		    }

            set 
		    {
			    SetColumnValue("manufacturerID", value);
            }

        }

	      
        [XmlAttribute("AttributeXML")]
        public string AttributeXML 
	    {
		    get
		    {
			    return GetColumnValue<string>("attributeXML");
		    }

            set 
		    {
			    SetColumnValue("attributeXML", value);
            }

        }

	      
        [XmlAttribute("StatusID")]
        public int StatusID 
	    {
		    get
		    {
			    return GetColumnValue<int>("statusID");
		    }

            set 
		    {
			    SetColumnValue("statusID", value);
            }

        }

	      
        [XmlAttribute("ProductTypeID")]
        public int ProductTypeID 
	    {
		    get
		    {
			    return GetColumnValue<int>("productTypeID");
		    }

            set 
		    {
			    SetColumnValue("productTypeID", value);
            }

        }

	      
        [XmlAttribute("ShippingTypeID")]
        public int ShippingTypeID 
	    {
		    get
		    {
			    return GetColumnValue<int>("shippingTypeID");
		    }

            set 
		    {
			    SetColumnValue("shippingTypeID", value);
            }

        }

	      
        [XmlAttribute("ShipEstimateID")]
        public int ShipEstimateID 
	    {
		    get
		    {
			    return GetColumnValue<int>("shipEstimateID");
		    }

            set 
		    {
			    SetColumnValue("shipEstimateID", value);
            }

        }

	      
        [XmlAttribute("TaxTypeID")]
        public int TaxTypeID 
	    {
		    get
		    {
			    return GetColumnValue<int>("taxTypeID");
		    }

            set 
		    {
			    SetColumnValue("taxTypeID", value);
            }

        }

	      
        [XmlAttribute("StockLocation")]
        public string StockLocation 
	    {
		    get
		    {
			    return GetColumnValue<string>("stockLocation");
		    }

            set 
		    {
			    SetColumnValue("stockLocation", value);
            }

        }

	      
        [XmlAttribute("OurPrice")]
        public decimal OurPrice 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("ourPrice");
		    }

            set 
		    {
			    SetColumnValue("ourPrice", value);
            }

        }

	      
        [XmlAttribute("RetailPrice")]
        public decimal RetailPrice 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("retailPrice");
		    }

            set 
		    {
			    SetColumnValue("retailPrice", value);
            }

        }

	      
        [XmlAttribute("Weight")]
        public decimal Weight 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("weight");
		    }

            set 
		    {
			    SetColumnValue("weight", value);
            }

        }

	      
        [XmlAttribute("CurrencyCode")]
        public string CurrencyCode 
	    {
		    get
		    {
			    return GetColumnValue<string>("currencyCode");
		    }

            set 
		    {
			    SetColumnValue("currencyCode", value);
            }

        }

	      
        [XmlAttribute("UnitOfMeasure")]
        public string UnitOfMeasure 
	    {
		    get
		    {
			    return GetColumnValue<string>("unitOfMeasure");
		    }

            set 
		    {
			    SetColumnValue("unitOfMeasure", value);
            }

        }

	      
        [XmlAttribute("AdminComments")]
        public string AdminComments 
	    {
		    get
		    {
			    return GetColumnValue<string>("adminComments");
		    }

            set 
		    {
			    SetColumnValue("adminComments", value);
            }

        }

	      
        [XmlAttribute("Length")]
        public decimal Length 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("length");
		    }

            set 
		    {
			    SetColumnValue("length", value);
            }

        }

	      
        [XmlAttribute("Height")]
        public decimal Height 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("height");
		    }

            set 
		    {
			    SetColumnValue("height", value);
            }

        }

	      
        [XmlAttribute("Width")]
        public decimal Width 
	    {
		    get
		    {
			    return GetColumnValue<decimal>("width");
		    }

            set 
		    {
			    SetColumnValue("width", value);
            }

        }

	      
        [XmlAttribute("DimensionUnit")]
        public string DimensionUnit 
	    {
		    get
		    {
			    return GetColumnValue<string>("dimensionUnit");
		    }

            set 
		    {
			    SetColumnValue("dimensionUnit", value);
            }

        }

	      
        [XmlAttribute("IsDeleted")]
        public bool IsDeleted 
	    {
		    get
		    {
			    return GetColumnValue<bool>("isDeleted");
		    }

            set 
		    {
			    SetColumnValue("isDeleted", value);
            }

        }

	      
        [XmlAttribute("ListOrder")]
        public int ListOrder 
	    {
		    get
		    {
			    return GetColumnValue<int>("listOrder");
		    }

            set 
		    {
			    SetColumnValue("listOrder", value);
            }

        }

	      
        [XmlAttribute("RatingSum")]
        public int RatingSum 
	    {
		    get
		    {
			    return GetColumnValue<int>("ratingSum");
		    }

            set 
		    {
			    SetColumnValue("ratingSum", value);
            }

        }

	      
        [XmlAttribute("TotalRatingVotes")]
        public int TotalRatingVotes 
	    {
		    get
		    {
			    return GetColumnValue<int>("totalRatingVotes");
		    }

            set 
		    {
			    SetColumnValue("totalRatingVotes", value);
            }

        }

	      
        [XmlAttribute("DefaultImage")]
        public string DefaultImage 
	    {
		    get
		    {
			    return GetColumnValue<string>("defaultImage");
		    }

            set 
		    {
			    SetColumnValue("defaultImage", value);
            }

        }

	      
        [XmlAttribute("CreatedOn")]
        public DateTime? CreatedOn 
	    {
		    get
		    {
			    return GetColumnValue<DateTime?>("createdOn");
		    }

            set 
		    {
			    SetColumnValue("createdOn", value);
            }

        }

	      
        [XmlAttribute("CreatedBy")]
        public string CreatedBy 
	    {
		    get
		    {
			    return GetColumnValue<string>("createdBy");
		    }

            set 
		    {
			    SetColumnValue("createdBy", value);
            }

        }

	      
        [XmlAttribute("ModifiedOn")]
        public DateTime? ModifiedOn 
	    {
		    get
		    {
			    return GetColumnValue<DateTime?>("modifiedOn");
		    }

            set 
		    {
			    SetColumnValue("modifiedOn", value);
            }

        }

	      
        [XmlAttribute("ModifiedBy")]
        public string ModifiedBy 
	    {
		    get
		    {
			    return GetColumnValue<string>("modifiedBy");
		    }

            set 
		    {
			    SetColumnValue("modifiedBy", value);
            }

        }

	      
        [XmlAttribute("CrossProductID")]
        public int CrossProductID 
	    {
		    get
		    {
			    return GetColumnValue<int>("crossProductID");
		    }

            set 
		    {
			    SetColumnValue("crossProductID", value);
            }

        }

	      
        [XmlAttribute("FromProductID")]
        public int FromProductID 
	    {
		    get
		    {
			    return GetColumnValue<int>("fromProductID");
		    }

            set 
		    {
			    SetColumnValue("fromProductID", value);
            }

        }

	      
        [XmlAttribute("ProductGUID")]
        public Guid ProductGUID 
	    {
		    get
		    {
			    return GetColumnValue<Guid>("productGUID");
		    }

            set 
		    {
			    SetColumnValue("productGUID", value);
            }

        }

	      
        [XmlAttribute("Rating")]
        public decimal? Rating 
	    {
		    get
		    {
			    return GetColumnValue<decimal?>("rating");
		    }

            set 
		    {
			    SetColumnValue("rating", value);
            }

        }

	    
	    #endregion
    
	    #region Columns Struct
	    public struct Columns
	    {
		    
		    
            public static string ProductID = @"productID";
            
            public static string Sku = @"sku";
            
            public static string ProductName = @"productName";
            
            public static string ShortDescription = @"shortDescription";
            
            public static string ManufacturerID = @"manufacturerID";
            
            public static string AttributeXML = @"attributeXML";
            
            public static string StatusID = @"statusID";
            
            public static string ProductTypeID = @"productTypeID";
            
            public static string ShippingTypeID = @"shippingTypeID";
            
            public static string ShipEstimateID = @"shipEstimateID";
            
            public static string TaxTypeID = @"taxTypeID";
            
            public static string StockLocation = @"stockLocation";
            
            public static string OurPrice = @"ourPrice";
            
            public static string RetailPrice = @"retailPrice";
            
            public static string Weight = @"weight";
            
            public static string CurrencyCode = @"currencyCode";
            
            public static string UnitOfMeasure = @"unitOfMeasure";
            
            public static string AdminComments = @"adminComments";
            
            public static string Length = @"length";
            
            public static string Height = @"height";
            
            public static string Width = @"width";
            
            public static string DimensionUnit = @"dimensionUnit";
            
            public static string IsDeleted = @"isDeleted";
            
            public static string ListOrder = @"listOrder";
            
            public static string RatingSum = @"ratingSum";
            
            public static string TotalRatingVotes = @"totalRatingVotes";
            
            public static string DefaultImage = @"defaultImage";
            
            public static string CreatedOn = @"createdOn";
            
            public static string CreatedBy = @"createdBy";
            
            public static string ModifiedOn = @"modifiedOn";
            
            public static string ModifiedBy = @"modifiedBy";
            
            public static string CrossProductID = @"crossProductID";
            
            public static string FromProductID = @"fromProductID";
            
            public static string ProductGUID = @"productGUID";
            
            public static string Rating = @"rating";
            
	    }

	    #endregion
	    
	    
	    #region IAbstractRecord Members
        public new CT GetColumnValue<CT>(string columnName) {
            return base.GetColumnValue<CT>(columnName);
        }

        public object GetColumnValue(string columnName) {
            return base.GetColumnValue<object>(columnName);
        }

        #endregion
	    
    }

}

